!function() {
    var r, t, n, e, i, f, o, u, s, l, a, h, w, A, b, d, c = null, y = new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535), v = new Array(3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0), m = new Array(0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99), g = new Array(1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577), B = new Array(0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13), M = new Array(16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15), X = function() {
        this.next = null,
        this.list = null
    }, _ = function() {
        this.e = 0,
        this.b = 0,
        this.n = 0,
        this.t = null
    }, x = function(r, t, n, e, i, f) {
        this.BMAX = 16,
        this.N_MAX = 288,
        this.status = 0,
        this.root = null,
        this.m = 0;
        var o, u, s, l, a, h, w, A, b, d, c, y, v, m, g, B, M, x = new Array(this.BMAX + 1), k = new Array(this.BMAX + 1), p = new _, z = new Array(this.BMAX), C = new Array(this.N_MAX), D = new Array(this.BMAX + 1);
        for (M = this.root = null,
        h = 0; h < x.length; h++)
            x[h] = 0;
        for (h = 0; h < k.length; h++)
            k[h] = 0;
        for (h = 0; h < z.length; h++)
            z[h] = null;
        for (h = 0; h < C.length; h++)
            C[h] = 0;
        for (h = 0; h < D.length; h++)
            D[h] = 0;
        u = t > 256 ? r[256] : this.BMAX,
        b = r,
        d = 0,
        h = t;
        do {
            x[b[d]]++,
            d++
        } while (--h > 0);
        if (x[0] == t)
            return this.root = null,
            this.m = 0,
            void (this.status = 0);
        for (w = 1; w <= this.BMAX && 0 == x[w]; w++)
            ;
        for (A = w,
        f < w && (f = w),
        h = this.BMAX; 0 != h && 0 == x[h]; h--)
            ;
        for (l = h,
        f > h && (f = h),
        m = 1 << w; w < h; w++,
        m <<= 1)
            if ((m -= x[w]) < 0)
                return this.status = 2,
                void (this.m = f);
        if ((m -= x[h]) < 0)
            return this.status = 2,
            void (this.m = f);
        for (x[h] += m,
        D[1] = w = 0,
        b = x,
        d = 1,
        v = 2; --h > 0; )
            D[v++] = w += b[d++];
        b = r,
        d = 0,
        h = 0;
        do {
            0 != (w = b[d++]) && (C[D[w]++] = h)
        } while (++h < t);
        for (t = D[l],
        D[0] = h = 0,
        b = C,
        d = 0,
        a = -1,
        y = k[0] = 0,
        c = null,
        g = 0; A <= l; A++)
            for (o = x[A]; o-- > 0; ) {
                for (; A > y + k[1 + a]; ) {
                    if (y += k[1 + a],
                    a++,
                    g = (g = l - y) > f ? f : g,
                    (s = 1 << (w = A - y)) > o + 1)
                        for (s -= o + 1,
                        v = A; ++w < g && !((s <<= 1) <= x[++v]); )
                            s -= x[v];
                    for (y + w > u && y < u && (w = u - y),
                    g = 1 << w,
                    k[1 + a] = w,
                    c = new Array(g),
                    B = 0; B < g; B++)
                        c[B] = new _;
                    (M = null == M ? this.root = new X : M.next = new X).next = null,
                    M.list = c,
                    z[a] = c,
                    a > 0 && (D[a] = h,
                    p.b = k[a],
                    p.e = 16 + w,
                    p.t = c,
                    w = (h & (1 << y) - 1) >> y - k[a],
                    z[a - 1][w].e = p.e,
                    z[a - 1][w].b = p.b,
                    z[a - 1][w].n = p.n,
                    z[a - 1][w].t = p.t)
                }
                for (p.b = A - y,
                d >= t ? p.e = 99 : b[d] < n ? (p.e = b[d] < 256 ? 16 : 15,
                p.n = b[d++]) : (p.e = i[b[d] - n],
                p.n = e[b[d++] - n]),
                s = 1 << A - y,
                w = h >> y; w < g; w += s)
                    c[w].e = p.e,
                    c[w].b = p.b,
                    c[w].n = p.n,
                    c[w].t = p.t;
                for (w = 1 << A - 1; 0 != (h & w); w >>= 1)
                    h ^= w;
                for (h ^= w; (h & (1 << y) - 1) != D[a]; )
                    y -= k[a],
                    a--
            }
        this.m = k[1],
        this.status = 0 != m && 1 != l ? 1 : 0
    }, k = function(r) {
        for (; f < r; )
            i |= (b.length == d ? -1 : 255 & b.charCodeAt(d++)) << f,
            f += 8
    }, p = function(r) {
        return i & y[r]
    }, z = function(r) {
        i >>= r,
        f -= r
    }, C = function(n, e, i) {
        var f, u, b;
        if (0 == i)
            return 0;
        for (b = 0; ; ) {
            for (k(w),
            f = (u = a.list[p(w)]).e; f > 16; ) {
                if (99 == f)
                    return -1;
                z(u.b),
                k(f -= 16),
                f = (u = u.t[p(f)]).e
            }
            if (z(u.b),
            16 != f) {
                if (15 == f)
                    break;
                for (k(f),
                s = u.n + p(f),
                z(f),
                k(A),
                f = (u = h.list[p(A)]).e; f > 16; ) {
                    if (99 == f)
                        return -1;
                    z(u.b),
                    k(f -= 16),
                    f = (u = u.t[p(f)]).e
                }
                for (z(u.b),
                k(f),
                l = t - u.n - p(f),
                z(f); s > 0 && b < i; )
                    s--,
                    l &= 32767,
                    t &= 32767,
                    n[e + b++] = r[t++] = r[l++];
                if (b == i)
                    return i
            } else if (t &= 32767,
            n[e + b++] = r[t++] = u.n,
            b == i)
                return i
        }
        return o = -1,
        b
    }, D = function(n, e, u) {
        var l;
        if (z(l = 7 & f),
        k(16),
        l = p(16),
        z(16),
        k(16),
        l != (65535 & ~i))
            return -1;
        for (z(16),
        s = l,
        l = 0; s > 0 && l < u; )
            s--,
            t &= 32767,
            k(8),
            n[e + l++] = r[t++] = p(8),
            z(8);
        return 0 == s && (o = -1),
        l
    }, R = function(r, t, i) {
        if (null == c) {
            var f, o, u = new Array(288);
            for (f = 0; f < 144; f++)
                u[f] = 8;
            for (; f < 256; f++)
                u[f] = 9;
            for (; f < 280; f++)
                u[f] = 7;
            for (; f < 288; f++)
                u[f] = 8;
            if (0 != (o = new x(u,288,257,v,m,e = 7)).status)
                return alert("HufBuild error: " + o.status),
                -1;
            for (c = o.root,
            e = o.m,
            f = 0; f < 30; f++)
                u[f] = 5;
            if (zip_fixed_bd = 5,
            (o = new x(u,30,0,g,B,zip_fixed_bd)).status > 1)
                return c = null,
                alert("HufBuild error: " + o.status),
                -1;
            n = o.root,
            zip_fixed_bd = o.m
        }
        return a = c,
        h = n,
        w = e,
        A = zip_fixed_bd,
        C(r, t, i)
    }, j = function(r, t, n) {
        var e, i, f, o, u, s, l, b, d, c = new Array(316);
        for (e = 0; e < c.length; e++)
            c[e] = 0;
        if (k(5),
        l = 257 + p(5),
        z(5),
        k(5),
        b = 1 + p(5),
        z(5),
        k(4),
        s = 4 + p(4),
        z(4),
        l > 286 || b > 30)
            return -1;
        for (i = 0; i < s; i++)
            k(3),
            c[M[i]] = p(3),
            z(3);
        for (; i < 19; i++)
            c[M[i]] = 0;
        if (0 != (d = new x(c,19,19,null,null,w = 7)).status)
            return -1;
        for (a = d.root,
        w = d.m,
        o = l + b,
        e = f = 0; e < o; )
            if (k(w),
            i = (u = a.list[p(w)]).b,
            z(i),
            (i = u.n) < 16)
                c[e++] = f = i;
            else if (16 == i) {
                if (k(2),
                i = 3 + p(2),
                z(2),
                e + i > o)
                    return -1;
                for (; i-- > 0; )
                    c[e++] = f
            } else if (17 == i) {
                if (k(3),
                i = 3 + p(3),
                z(3),
                e + i > o)
                    return -1;
                for (; i-- > 0; )
                    c[e++] = 0;
                f = 0
            } else {
                if (k(7),
                i = 11 + p(7),
                z(7),
                e + i > o)
                    return -1;
                for (; i-- > 0; )
                    c[e++] = 0;
                f = 0
            }
        if (d = new x(c,l,257,v,m,w = 9),
        0 == w && (d.status = 1),
        0 != d.status)
            return d.status,
            -1;
        for (a = d.root,
        w = d.m,
        e = 0; e < b; e++)
            c[e] = c[e + l];
        return d = new x(c,b,0,g,B,A = 6),
        h = d.root,
        0 == (A = d.m) && l > 257 ? -1 : (d.status,
        0 != d.status ? -1 : C(r, t, n))
    }, H = function(n, e, i) {
        var f, h;
        for (f = 0; f < i; ) {
            if (u && -1 == o)
                return f;
            if (s > 0) {
                if (0 != o)
                    for (; s > 0 && f < i; )
                        s--,
                        l &= 32767,
                        t &= 32767,
                        n[e + f++] = r[t++] = r[l++];
                else {
                    for (; s > 0 && f < i; )
                        s--,
                        t &= 32767,
                        k(8),
                        n[e + f++] = r[t++] = p(8),
                        z(8);
                    0 == s && (o = -1)
                }
                if (f == i)
                    return f
            }
            if (-1 == o) {
                if (u)
                    break;
                k(1),
                0 != p(1) && (u = !0),
                z(1),
                k(2),
                o = p(2),
                z(2),
                a = null,
                s = 0
            }
            switch (o) {
            case 0:
                h = D(n, e + f, i - f);
                break;
            case 1:
                h = null != a ? C(n, e + f, i - f) : R(n, e + f, i - f);
                break;
            case 2:
                h = null != a ? C(n, e + f, i - f) : j(n, e + f, i - f);
                break;
            default:
                h = -1
            }
            if (-1 == h)
                return u ? 0 : -1;
            f += h
        }
        return f
    };
    window.RawDeflate || (RawDeflate = {}),
    RawDeflate.inflate = function(n) {
        var e, h;
        null == r && (r = new Array(65536)),
        t = 0,
        i = 0,
        f = 0,
        o = -1,
        u = !1,
        s = l = 0,
        a = null,
        b = n,
        d = 0;
        for (var w = new Array(1024), A = []; (e = H(w, 0, w.length)) > 0; ) {
            var c = new Array(e);
            for (h = 0; h < e; h++)
                c[h] = String.fromCharCode(w[h]);
            A[A.length] = c.join("")
        }
        return b = null,
        A.join("")
    }
}();
